////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  ispglobalelements.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef ISPGLOBALELEMENTS_H
#define ISPGLOBALELEMENTS_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "globalelements.h"

#define ISPGLOBALELEMENTS_NAMESPACE_BEGIN namespace ispglobalelements {
#define ISPGLOBALELEMENTS_NAMESPACE_END }

ISPGLOBALELEMENTS_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// control_var_type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class control_var_type
{
    control_lux_idx                   = 0,
    control_gain                      = 1,
    control_drc_gain                  = 2,
    control_exp_time_ratio            = 3,
    control_aec_exp_sensitivity_ratio = 4,
    control_cct                       = 5,
    control_total_scale_ratio         = 6,
    control_lens_position             = 7,
    control_led_idx                   = 8,
    control_led_sensitivity           = 9,
    control_post_scale_ratio          = 10,
    control_effective_gain            = 11,
    control_lens_zoom                 = 12,
    control_pre_scale_ratio           = 13,
    control_pass                      = 14
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// tuning_control_aec_type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class tuning_control_aec_type
{
    control_lux_idx = 0,
    control_gain    = 1
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// tuning_control_aec_hdr_type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class tuning_control_aec_hdr_type
{
    control_exp_time_ratio            = 0,
    control_aec_exp_sensitivity_ratio = 1
};
typedef INT32 trigger_pt_type_led_idx;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// trigger_pt_type_aec_hdr
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct trigger_pt_type_aec_hdr
{
    FLOAT exp_time_start;
    FLOAT exp_time_end;
    FLOAT aec_sensitivity_start;
    FLOAT aec_sensitivity_end;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// trigger_pass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class trigger_pass
{
    PASS_FULL = 0,
    PASS_DC4  = 1,
    PASS_DC16 = 2,
    PASS_DC64 = 3
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// trigger_pt_type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct trigger_pt_type
{
    FLOAT start;
    FLOAT end;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// trigger_pt_couplet_type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct trigger_pt_couplet_type
{
    FLOAT start1;
    FLOAT end1;
    FLOAT start2;
    FLOAT end2;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// hyst_direction
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class hyst_direction
{
    UPWARD   = 0,
    DOWNWARD = 1
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// channel_rgb_type
/// Comments:      Channel type selection for R/G/B/All
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class channel_rgb_type
{
    channel_G   = 0,
    channel_B   = 1,
    channel_R   = 2,
    channel_RGB = 3
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// pass_type
/// Comments:      Pass number for Multipass modules
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
enum class pass_type
{
    DS4  = 0,
    DS16 = 1
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ispglobalelementsClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class ispglobalelementsClass
{
public:

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load trigger_pt_type_aec_hdr
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtrigger_pt_type_aec_hdr(
        ParameterFileSymbolTableEntry* entry,
        trigger_pt_type_aec_hdr* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load trigger_pt_type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtrigger_pt_type(
        ParameterFileSymbolTableEntry* entry,
        trigger_pt_type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load trigger_pt_couplet_type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtrigger_pt_couplet_type(
        ParameterFileSymbolTableEntry* entry,
        trigger_pt_couplet_type* structure);

}; // End class ispglobalelementsClass

ISPGLOBALELEMENTS_NAMESPACE_END
#endif // ISPGLOBALELEMENTS_H

